//
//  JYStatusRetweetView.swift
//  01.weibo
//
//  Created by 谢玉锋 on 16/7/17.
//  Copyright © 2016年 itheima.cn. All rights reserved.
//

import UIKit

class JYStatusRetweetView: UIView {

    var retweeted_status: JYStatus? {
        //一获取到值,调用这方法 (属性检测器)
        didSet {
            // 当别人设置被转发微博的内容,我们来设置相应的内容到view上面
            // 被转发的微博文本内容 = @被转发微博的用户名称: 被转发微博的文本内容
            //retweeted_status 是可选的,右边如果想继续往下操作,要么拆包!,要么设为可选
        let retweetName = retweeted_status?.user?.screen_name ?? "被转发微博的用户名称"
        let retweetText  = retweeted_status?.text
        let retweetContent = "@\(retweetName): \(retweetText)" ?? "被转发微博内容为空"
            retweetLabel.text = retweetContent
            //配置图片
            retweetPictureView.pictureURLs = retweeted_status?.storePicutreURLs
             
            // 当没有图片的时候,HMStatusPictureView距离contentLabel的底部不需要8的间距
            retweetPictureView.snp_updateConstraints { (make) -> Void in
                let margin = retweeted_status?.storePicutreURLs == nil ? 0 : JYStatusCellMargin
                make.top.equalTo(retweetLabel.snp_bottom).offset(margin)
            }
        }
    
    }
    
    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    
    override init(frame: CGRect) {
        super.init(frame: frame)//如果报initialized, 则是某属性没有初始化 ,将属性设置可选
        backgroundColor = UIColor.randomColor()
        
        prepareUI()
    }
    
    private func prepareUI() {

        // 1.添加控件
        addSubview(bkgButton)
        addSubview(retweetLabel)
        addSubview(retweetPictureView)
        //添加约束
        // 背景按钮
        bkgButton.snp_makeConstraints { (make) -> Void in
            make.edges.equalTo(self)
        }
        // 被转发的微博文本内容
        retweetLabel.snp_makeConstraints { (make) -> Void in
            make.leading.top.equalTo(self).offset(JYStatusCellMargin)
            make.trailing.equalTo(self).offset(-JYStatusCellMargin)
        }
        // 配图
        retweetPictureView.snp_makeConstraints { (make) -> Void in
            make.leading.equalTo(self).offset(JYStatusCellMargin)
            make.top.equalTo(retweetLabel.snp_bottom).offset(JYStatusCellMargin)
            
            // 配图大小当别人给他设置pictureURL后他会自动更新,不用我们操心
            make.size.equalTo(CGSizeZero)
        }
        
        // 添加底部约束让被转发的view的底部参照被转发的配图视图  // 这里参照配图底部就相当于有高度了 , 因为 配图会根据 pictureURLs自动计算出高度 (重要提示: 转发微博 JYStatusRetweetView ,在cell中还不知道自己高度,所以约束不了(测试设置的高度除外) 所以要在JYStatusRetweetView 类中 自己设置高度约束 self )
        
        self.snp_makeConstraints { (make) -> Void in
            make.bottom.equalTo(retweetPictureView).offset(JYStatusCellMargin)
        }

        
    }
    
    // MARK: - 懒加载控件
    /// 背景按钮
    private lazy var bkgButton: UIButton = { () -> UIButton in
        let button = UIButton()
        
        // 设置按钮
        button.setBackgroundImage(UIImage(named: "retweet_background"), forState: UIControlState.Normal)
        button.setBackgroundImage(UIImage(named: "retweet_background_highlighted"), forState: UIControlState.Highlighted)
        
        return button
    }()
    
    /// 被转发的文字
    private lazy var retweetLabel: UILabel = {
        let label = UILabel(fontSize: JYTextFontSize, textColor: UIColor.darkGrayColor())
        let result = arc4random_uniform(100) % 2
        label.text = result == 0 ? "要下大雨了:要下大雨了:要下大雨了:要下大雨了:要下大雨了:要下大雨了:要下大雨了:要下大雨了:要下大雨了:要下大雨了:" : "明天不要下雨明天不要下雨明天不要下雨明天不要下雨明天不要下雨明天不要下雨明天不要下雨明天不要下雨明天不要下雨明天不要下雨明天不要下雨明天不要下雨明天不要下雨明天不要下雨明天不要下雨明天不要下雨明天不要下雨明天不要下雨明天不要下雨明天不要下雨明天不要下雨明天不要下雨明天不要下雨明天不要下雨明天不要下雨明天不要下雨"
        label.sizeToFit()
        label.numberOfLines = 0
        
        return label
    }()
    
    /// 被转发的配图视图
    private lazy var retweetPictureView: JYStatusPictrueView = JYStatusPictrueView()
    
}
